//*
//**************************************************************************************************
//模块名       : 计费控制单元(TCU)公共动态库
//文件名       : libtcu.h
//               注意：文件名中增加版本号是为了区分文件版本，防止意外覆盖。正式使用时，应删除文件名中的版本号。
//相关文件     : libtcu.so (安装路径:/usr/lib/)
//文件实现功能 : 约定计费控制单元操作相关端口或设备的方法,用以屏蔽硬件实现的差异，保障计费控制
//               单元应用软件在多种硬件平台上的兼容运行。
//版本         : 1.06
//--------------------------------------------------------------------------------------------------
//备注         : 各硬件设备厂家必须严格按照本文件的约定实现规定的函数，并编译成动态链接库，并将
//               动态链接库放置在指定的安装路径下。
//
//--------------------------------------------------------------------------------------------------
//修改记录     :
//日 期        版本            修改内容
//2015/12/09   1.00             创建
//2015/12/09   1.01             完善ESAM、PSAM操作函数，增加文件句柄参数。
//2015/12/09   1.02             补充InitESAM/InitPSAM函数返回值和fd参数值的含义的说明。
//2015/12/10   1.03             完善北斗/GPS相关函数定义。
//2015/12/10   1.04             完善ESAM函数和BDGPS函数。
//2016/02/01   1.06             修改通信部分GetCurSimChan函数的参数类型
//2016/06/15   1.06             修改GetMobileSignal函数的入口参数和返回值，以及GetBDGPSData函数入口参数，新增交流
//								单色屏显示相关函数
//2016/09/08   1.06             修改GetBDGPSData函数,将高度(bdgps_Altitude)的数据类型由无符号整型改为有符号整型。
//2016/09/29   1.06             修改GetMobileSignal函数,添加Sim_Operators(SIM卡运营商)返回值的定义;
//2016/09/29   1.06			    修改GetMobileSignal函数,增加sys_mode(网络信号制式)的返回值,当获取不到网络类型时返回1;
//2016/09/29   1.06             增加获取库版本的函数GetlibVersion;
//2017/05/04   1.06             添加设置背光的函数SetBacklight;
//2017/05/04   1.06             添加获取SIM卡号的函数GetSimNum;
//2017/05/04   1.06             添加设置使用特定网络制式的函数SetNetworkType;
//**************************************************************************************************
//
//* 版权所有(c) 2016, 国家电网公司, 保留所有权利
//
//**************************************************************************************************
//

#ifndef LIB_TCU_H
#define LIB_TCU_H

#define LIB_VERSION   10006

//错误码定义
#define ERROR_NOSUPPORT	-5		//当前不支持该功能
#define ERROR_SYS	-4		//系统API返回错误（系统调用返回错误）
#define ERROR_INPARA	-3		//参数错误（如参数不合法、缓冲区过小等）
#define ERROR_TIMEOUT	-2		//操作超时
#define ERROR_FAIL	-1		//其他错误，原因不明
#define ERROR_OK	 0		//操作成功

//命令字定义
#define	TCU_IOCTL_BASE	'E'


//************************************************************
//*-----------------------------------------------------------
//*
//**   ESAM设备相关部分
//*
//*-----------------------------------------------------------
//************************************************************

#ifdef __cplusplus
extern "C" {
#endif


//*------------------------------------------------------------------------------------------------
//* 函数名称:  InitEsam
//* 功能描述:  ESAM初始化
//* 入口参数:  无
//* 返回值  :
//*                成功，返回:ERROR_OK(==0)；
//*                失败，返回(ERROR_FAIL)
//* 备注    :  无
//*------------------------------------------------------------------------------------------------
extern int InitEsam();


//*------------------------------------------------------------------------------------------------
//* 函数名称:  ResetEsam
//* 功能描述:  ESAM复位操作
//* 入口参数:
//*           -- Rstcmd:  - 0  冷复位， 1  热复位
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :  无
//*------------------------------------------------------------------------------------------------
extern int ResetEsam(int Rstcmd);


//*------------------------------------------------------------------------------------------------
//* 函数名称:  ReadEsam
//* 功能描述:  读ESAM数据
//* 入口参数:
//*           -- buffer:     - 读取的数据存放缓冲区
//*           -- uWntLen:    - 此次希望得到报文长度
//*           -- pGetlen:    - 返回实际读取的报文长度
//*           -- timesoutus: - 最大的阻塞读取等待间隔，单位: useconds(微秒)
//*                            若timesoutus=0，非阻塞读模式.
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_INPARA/ERROR_TIMEOUT/ERROR_SYS/ERROR_NOSUPPORT/ERROR_FAIL)
//* 备注    :
//*------------------------------------------------------------------------------------------------
extern int ReadEsam(unsigned char *buffer, unsigned int uWntLen, unsigned int *pGetlen, unsigned int timesoutus);


//*------------------------------------------------------------------------------------------------
//* 函数名称:  WriteEsam
//* 功能描述:  向ESAM写数据
//* 入口参数:
//*           -- buffer:     - 写入的数据存放缓冲区
//*           -- len:        - 写入的数据长度(指针)
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_INPARA/ERROR_TIMEOUT/ERROR_SYS/ERROR_NOSUPPORT/ERROR_FAIL)
//* 备注    :
//*
//*------------------------------------------------------------------------------------------------
extern int WriteEsam(unsigned char *buffer, unsigned int len);


//*------------------------------------------------------------------------------------------------
//* 函数名称:  EsamStop
//* 功能描述:  停活
//* 入口参数:
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :  无
//*------------------------------------------------------------------------------------------------
extern int StopEsam();

#ifdef __cplusplus
}
#endif


//************************************************************
//*-----------------------------------------------------------
//*
//**   PSAM设备相关部分
//*
//*-----------------------------------------------------------
//************************************************************

#ifdef __cplusplus
extern "C" {
#endif


//*------------------------------------------------------------------------------------------------
//* 函数名称:  InitPsam
//* 功能描述:  PSAM初始化
//* 入口参数:  无
//*
//* 返回值  :
//*                成功，返回:ERROR_OK(==0)；
//*                失败，返回(ERROR_FAIL)
//* 备注    :  无
//*------------------------------------------------------------------------------------------------
extern int InitPsam();

//*------------------------------------------------------------------------------------------------
//* 函数名称:  ResetPsam
//* 功能描述:  PSAM复位操作
//* 入口参数:
//*           -- Rstcmd:    - 0  冷复位， 1  热复位
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :  无
//*------------------------------------------------------------------------------------------------
extern int ResetPsam(int Rstcmd);


//*------------------------------------------------------------------------------------------------
//* 函数名称:  ReadPsam
//* 功能描述:  读PSAM数据
//* 入口参数:
//*           -- buffer:     - 读取的数据存放缓冲区
//*           -- uWntLen:    - 此次希望得到报文长度
//*           -- pGetlen:    - 返回实际读取的报文长度
//*           -- timesoutus: - 最大的阻塞读取等待间隔，单位: useconds(微秒)
//*                            若timesoutus=0，非阻塞读模式.
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_INPARA/ERROR_TIMEOUT/ERROR_SYS/ERROR_NOSUPPORT/ERROR_FAIL)
//* 备注    :
//*------------------------------------------------------------------------------------------------
extern int ReadPsam(unsigned char *buffer, unsigned int uWntLen, unsigned int *pGetlen, unsigned int timesoutus);



//*------------------------------------------------------------------------------------------------
//* 函数名称:  WritePsam
//* 功能描述:  向PSAM写数据
//* 入口参数:
//*           -- buffer:     - 写入的数据存放缓冲区
//*           -- len:        - 写入的数据长度
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_INPARA/ERROR_TIMEOUT/ERROR_SYS/ERROR_NOSUPPORT/ERROR_FAIL)
//* 备注    :
//*
//*------------------------------------------------------------------------------------------------
extern int WritePsam(unsigned char *buffer, unsigned int len);


//*------------------------------------------------------------------------------------------------
//* 函数名称:  StopPsam
//* 功能描述:  停活
//* 入口参数:
//*            --psam_fd:    -为PSAM文件描述符
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :  无
//*------------------------------------------------------------------------------------------------
extern int StopPsam();

//*------------------------------------------------------------------------------------------------
//* 函数名称:  GetlibVersion
//* 功能描述:  获取库的版本
//* 入口参数:
//*            --char *libVersion:    版本号
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :  返回前面宏定义 LIB_VERSION 
//*------------------------------------------------------------------------------------------------
extern int GetlibVersion(char *libVersion);

#ifdef __cplusplus
}
#endif



//************************************************************
//*-----------------------------------------------------------
//*
//**   IO设备相关部分
//*
//*-----------------------------------------------------------
//************************************************************

#ifdef __cplusplus
extern "C" {
#endif

#define DO_0 0
#define DO_1 1
#define DO_2 2
#define DO_3 3
#define DO_4 4
#define DO_5 5


#define DI_0 0//掉电检测
#define DI_1 1
#define DI_2 2
#define DI_3 3
#define DI_4 4
#define DI_5 5



//*--------------------------------------------------------------------------
//* 函数名称:  InitExIOState
//* 功能描述:  初始化GPIO状态
//* 入口参数:  无
//*
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :   无
//*--------------------------------------------------------------------------
extern int InitExIOState();


//*--------------------------------------------------------------------------
//* 函数名称:  SetExIOOutState
//* 功能描述:  设置GPIO为电平输出，并设置IO的输出状态
//* 入口参数:
//*           -- gpio:    - IO端口号
//*           -- state:   - IO输出状态(0:打开/1:闭合)
//*
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :   无
//*--------------------------------------------------------------------------
extern int SetExIOOutState(int gpio, int state);

//*--------------------------------------------------------------------------
//* 函数名称:  GetExIOOutState
//* 功能描述:  读取为电平输出类型IO的当前输出状态
//* 入口参数:
//*           -- gpio:     - IO端口号
//*           -- curstate: - 返回IO的当前输出状态(0:打开/1:闭合)
//*
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :   无
//*--------------------------------------------------------------------------
extern int GetExIOOutState(int gpio,int *curstate);


//*------------------------------------------------------------------------------------------------
//* 函数名称:  GetExIOInValue
//* 功能描述:  读取为电平输入类型IO的当前输入值
//* 入口参数:
//*           -- gpio:     - IO端口号
//*           -- curval:   - 返回IO的当前输入状态(0:低电平/1:高电平)
//*
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_INPARA/ERROR_TIMEOUT/ERROR_SYS/ERROR_NOSUPPORT/ERROR_FAIL)
//* 备注    :   无
//*------------------------------------------------------------------------------------------------
extern int GetExIOInValue(int gpio,int *curval);

#ifdef __cplusplus
}
#endif


//************************************************************
//*-----------------------------------------------------------
//*
//**   通信设备相关部分
//*
//*-----------------------------------------------------------
//************************************************************

#ifdef __cplusplus
extern "C" {
#endif


//*--------------------------------------------------------------------------
//* 函数名称:  GetMobileSignal
//* 功能描述:  获取当前信号强度
//* 入口参数:
//*           无
//*
//* 返回值  :  当前信号强度
//* 备注    :   
//*--------------------------------------------------------------------------
extern int GetMobileSignal();


//*--------------------------------------------------------------------------
//* 函数名称:  GetMobileSignal1，在原有基础上增加信号强度，制式，运营商 
//* 功能描述:  获取当前网络规则和信号强度
//* 入口参数:
//*			  --signal_intensity: 当前信号强度
//*           --sys_mode: 		  网络信号制式(0:无服务 1:获取不到网络类型 2:2G 3:3G 4:4G)
//*			  --Sim_Operators:    SIM卡运营商(0:未获取 1:联通 2:移动 3:电信)
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :  无 
//*--------------------------------------------------------------------------
extern int GetMobileSignal1(int *signal_intensity,char *sys_mode,char *Sim_Operators);


//*--------------------------------------------------------------------------
//* 函数名称:  ChangeSimChan
//* 功能描述:  切换SIM卡的通道
//* 入口参数:
//*           -- chan:   - SIM卡通道 (0:sim0 / 1:sim1)
//*
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :   默认sim0是主卡
//*--------------------------------------------------------------------------
extern int ChangeSimChan(int chan);

//*--------------------------------------------------------------------------
//* 函数名称:  GetCurSimChan
//* 功能描述:  获取当前所用SIM卡通道
//* 入口参数:
//*           -- chan:   - 当前SIM卡通道 (0:sim0 / 1:sim1)
//*
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :   无
//*--------------------------------------------------------------------------
extern int GetCurSimChan(int *chan);


//*--------------------------------------------------------------------------
//* 函数名称:  SetBacklight
//* 功能描述:  设置屏幕的背光亮度
//* 入口参数:
//*           -- values:   - 设置的亮度值 (设置范围 0~100)
//*
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :   无
//*--------------------------------------------------------------------------

extern int SetBacklight(int values);


//*--------------------------------------------------------------------------
//* 函数名称:  GetSimNum
//* 功能描述:  获取SIM卡的卡号 ICCID号
//* 入口参数:
//*           -- *simnum:   - 获取的卡号 ICCID号
//*           --lenth   :     卡号长度
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :   无
//*--------------------------------------------------------------------------

extern int GetSimNum(char *simnum,int *lenth);

//*--------------------------------------------------------------------------
//* 函数名称:  SetNetworkType
//* 功能描述:  设置使用的信号制式
//* 入口参数:
//*           --operators:   - SIM卡运营商    (1:联通 2:移动 3:电信)
//*           -- simtype :   - 设置的信号制式 (1.拨号模块自动选择 2:2G 3:3G 4:4G)
//*           --chan     :   - SIM卡通道      (0 :SIM1 1:SIM2)
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :   无
//*--------------------------------------------------------------------------
extern int SetNetworkType(int operators,int simtype,int chan);

#ifdef __cplusplus
}
#endif


//************************************************************
//*-----------------------------------------------------------
//*
//**   北斗/GSP相关部分
//*
//*-----------------------------------------------------------
//************************************************************
#ifdef __cplusplus
extern "C" {
#endif

//*--------------------------------------------------------------------------
//* 函数名称:  InitBDGPS
//* 功能描述:  初始化北斗/GPS模块
//* 入口参数:
//*           -- bdgps_fd   北斗/GPS设备文件描述符
//*
//* 返回值  :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注    :
//*--------------------------------------------------------------------------
extern int InitBDGPS(int *bdgps_fd);


//*--------------------------------------------------------------------------
//* 函数名称:  GetBDGPSState
//* 功能描述:  获取当前北斗/GPS的状态
//* 入口参数:
//*           -- bdgps_fd       - 北斗/GPS设备文件描述符
//*           -- bdgps_state    - 当前北斗或者GPS的定位状态:返回：0-无效定位或未定位成功，1-SPS模式定位有效,2-DGPS模式定位有效，其他值无效。
//* 返回值    :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注         :
//*--------------------------------------------------------------------------

extern int GetBDGPSState(int bdgps_fd,int * bdgps_state);


//*--------------------------------------------------------------------------
//* 函数名称:  GetBDGPSData
//* 功能描述:  获取北斗/GPS当前定位和时间相关数据
//* 入口参数:
//*           -- bdgps_fd          - 北斗/GPS设备文件描述符
//*           -- bdgps_loca_state  - 定位状态。返回：'V'(86)-无效，'A'（65）-有效,其他值无效。
//*           -- bdgps_we          - 西经东经。返回：'W'(87)-西经，'E'(69)-东经,其他值无效
//*           -- bdgps_Longitude   - 经度 精度0.0001，例如：
//*           -- bdgps_ns          - 北纬南纬。返回：'N'(78)-北纬，'S'(83)-南纬,其他值无效
//*           -- bdgps_Latitude    - 纬度 精度0.0001，例如：
//*           -- bdgps_Altitude    - 海拔 精度0.0001，例如：571000,表示57.1米
//*           -- bdgps_Time   	   - 时间，例如：为1970-01-01 0:00:00年至今的UTC秒数。
//*
//* 返回值 :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注   :   无
//*--------------------------------------------------------------------------
extern int GetBDGPSData(int             bdgps_fd,
                        char	        *bdgps_loca_state,
                        char	        *bdgps_we,
                        unsigned int	*bdgps_Longitude,
                        char	        *bdgps_ns,
                        unsigned int    *bdgps_Latitude,
                        unsigned int    *bdgps_Altitude,
                        unsigned int    *bdgps_Time);


//*--------------------------------------------------------------------------
//* 函数名称:  GetBDGPSData1
//* 功能描述:  获取北斗/GPS当前定位和时间相关数据,在原有的基础上增加bdgps_type,将高度由无符号改为有符号
//* 入口参数:
//*           -- bdgps_fd          - 北斗/GPS设备文件描述符
//*		      -- bdgps_type	   	   - 定位系统(01:表示gps全球定位系统,02:BD表示北斗全球定位系统,03:GNSS表示GNSS全球定位系统
//*										      04:表示Glonass全球定位系统,05:表示Galileo全球定位系统,06:其他类型)
//*           -- bdgps_loca_state  - 当前北斗或者GPS的定位状态:返回：0-无效定位或未定位成功，1-SPS模式定位有效,2-DGPS模式定位有效，其他值无效。
//*           -- bdgps_we          - 西经东经。返回：'W'(87)-西经，'E'(69)-东经,其他值无效
//*           -- bdgps_Longitude   - 经度 精度0.0001，例如：
//*           -- bdgps_ns          - 北纬南纬。返回：'N'(78)-北纬，'S'(83)-南纬,其他值无效
//*           -- bdgps_Latitude    - 纬度 精度0.0001，例如：
//*           -- bdgps_Altitude    - 海拔 精度0.0001，例如：571000,表示57.1米
//*           -- bdgps_Time   	   - 时间，例如：为1970-01-01 0:00:00年至今的UTC秒数。
//*
//* 返回值 :  成功返回ERROR_OK(==0)；失败返回(ERROR_FAIL)
//* 备注   :   无
//*--------------------------------------------------------------------------
extern int GetBDGPSData1(int             bdgps_fd,
                        char 			*bdgps_type,
                        char	        *bdgps_loca_state,
                        char	        *bdgps_we,
                        unsigned int	*bdgps_Longitude,
                        char	        *bdgps_ns,
                        unsigned int    *bdgps_Latitude,
                                 int    *bdgps_Altitude,
                        unsigned int    *bdgps_Time);




#ifdef __cplusplus
}
#endif






//************************************************************
//*-----------------------------------------------------------
//*
//*                看门狗设备相关部分
//*
//*-----------------------------------------------------------
//************************************************************

#ifdef __cplusplus
extern "C" {
#endif

//*------------------------------------------------------------------------------------------------
//* 函数名称:  EnableWtd
//* 功能描述:  使能看门狗设备
//* 入口参数:
//*           -- TimeOut:     - 指定看门狗的最大喂狗间隔（秒）
//*
//* 返回值：      成功返回ERROR_OK(==0)；失败返回(ERROR_INPARA/ERROR_TIMEOUT/ERROR_SYS/ERROR_NOSUPPORT/ERROR_FAIL)
//* 备注:     无
//*------------------------------------------------------------------------------------------------
extern int EnableWtd(int TimeOut);


//*------------------------------------------------------------------------------------------------
//* 函数名称:  FeedWtd
//* 功能描述:  喂狗操作
//* 入口参数:  无
//*
//* 返回值：        成功返回ERROR_OK(==0)；失败返回(ERROR_INPARA/ERROR_TIMEOUT/ERROR_SYS/ERROR_NOSUPPORT/ERROR_FAIL)
//* 备注:      无
//*------------------------------------------------------------------------------------------------
extern int FeedWtd(void);


//*------------------------------------------------------------------------------------------------
//* 函数名称:  DisableWtd
//* 功能描述:  关闭看门狗
//* 入口参数:  无
//*
//* 返回值：        成功返回ERROR_OK(==0)；失败返回(ERROR_INPARA/ERROR_TIMEOUT/ERROR_SYS/ERROR_NOSUPPORT/ERROR_FAIL)
//* 备注:      无
//*------------------------------------------------------------------------------------------------
extern int DisableWtd(void);

#ifdef __cplusplus
}
#endif
//************************************************************
//*-----------------------------------------------------------
//*
//*                单色屏相关部分
//*
//*-----------------------------------------------------------
//************************************************************
#ifdef __cplusplus
extern "C" {
#endif
/*------------------------------------------------------------------------------------------------
* 函数名称:  Monochrome_Pixel
* 功能描述:  在指定的坐标位置描点
* 入口参数:  int x    			 --显示的x坐标
*			 int y    			 --显示的y坐标
*			 int color           --显示的颜色
* 返回值  :  无
* 备注    :  无
------------------------------------------------------------------------------------------------*/

extern void Monochrome_Pixel(int x,int y,int color);

//*------------------------------------------------------------------------------------------------
//* 函数名称:  Monochrome_Init
//* 功能描述:  启动对屏的操作功能，并初始化单色屏
//* 入口参数:  无
//*
//* 返回值  :
//*            启动成功，返回:ERROR_OK(==0)；
//*            启动失败，返回(ERROR_FAIL)
//* 备注    :  无
//*------------------------------------------------------------------------------------------------
extern int Monochrome_Init();

//*------------------------------------------------------------------------------------------------
//* 函数名称:  Monochrome_Close
//* 功能描述:  关闭对屏的操作功能
//* 入口参数:  无
//*
//* 返回值  :
//*            关闭成功，返回:ERROR_OK(==0)；
//*            关闭失败，返回(ERROR_FAIL)
//* 备注    :  无
//*------------------------------------------------------------------------------------------------
extern int Monochrome_Close();

/*------------------------------------------------------------------------------------------------
* 函数名称:  Monochrome_Clean
* 功能描述:  单色屏清除指定区域
* 入口参数:  int x0    			   --显示的x0坐标(左上角坐标)
*			 int y0			   	   --显示的y0坐标
*            int x1                --显示的x1坐标(右下角坐标)
*            int y1                --显示的y1坐标
*            int mode              --0:清除整个屏幕 1:清除指定区域的数据
* 返回值  :
*             成功，返回:ERROR_OK(==0)；
*             失败，返回(ERROR_FAIL)
* 备注    :  无
------------------------------------------------------------------------------------------------*/
extern int Monochrome_Clean(int x0,int y0,int x1,int y1,int mode);

/*------------------------------------------------------------------------------------------------
* 函数名称:  Monochrome_DisString
* 功能描述:  在指定位置显示指定颜色和大小的字符串
* 入口参数:  int x    			     				--显示的x坐标
*			 int y				 					--显示的y坐标
*			 unsigned char *str	 					--显示的字符串
*            int size               			 	--显示的字体大小
*			 int colour			 					--显示颜色（0表示黑色，1表示白色）
*            int mode                				--0:字符串 1:汉字 2:汉字字符混合显示
* 返回值  :
*            成功，返回:ERROR_OK(==0)；
*            失败，返回(ERROR_FAIL)
* 备注    :  字符串  :  mode==0时;显示时有8: 8*8 16: 8*16 两种大小;
*            汉  字  :  mode==1时;显示时有16:16*16 32:32*32 两种大小;
*            混合显示:  mode==3时;显示的字符串为:8*16,汉字为:16*16;
*------------------------------------------------------------------------------------------------*/
 extern int Monochrome_DisString(int x,int y,char *str,int size,int color,int mode);
//*------------------------------------------------------------------------------------------------
//* 函数名称:  Monochrome_FillBar
//* 功能描述:  在指定位置显示进度条
//* 入口参数:  int x0    						 --显示的x0坐标
//*			   int y0				 			 --显示的y0坐标
//*            int x1                			 --显示的x1坐标
//*            int y1                			 --显示的y1坐标
//*			   int color						 --显示颜色（0表示黑色，1表示白色）
//*
//* 返回值  :
//*            成功，返回:ERROR_OK(==0)；
//*            失败，返回(ERROR_FAIL)
//* 备注    :  (x0,y0):矩形左上角坐标 ; (x1,y1):矩形右下角坐标
//*------------------------------------------------------------------------------------------------
extern int Monochrome_FillBar( int x0, int y0, int x1, int y1,int color );

//*------------------------------------------------------------------------------------------------
//* 函数名称:  Monochrome_Line
//* 功能描述:  画线
//* 入口参数:  int x    			 --显示的x坐标
//*			   int y				 --显示的y坐标
//*            int lenth             --线的长度(像素点)
//*            int Dir               --方向 0:X轴方向 1:Y轴方向
//*			   int colour			 --显示颜色（0表示黑色，1表示白色）
//*
//* 返回值  :
//*            成功，返回:ERROR_OK(==0)；
//*            失败，返回(ERROR_FAIL)
//* 备注    :  无
//*------------------------------------------------------------------------------------------------

extern int Monochrome_Line(int x, int y, int lenth,int Dir,int color);
/*------------------------------------------------------------------------------------------------
* 函数名称:  Monochrome_DisQRcode
* 功能描述:  指定位置显示二维码
* 入口参数:  int x    			 --显示的x0坐标
*			 int y				 --显示的y0坐标
*            nsigned char *str   --需要生成二维码数据
* 返回值  :
*            成功，返回:ERROR_OK(==0)；
*            失败，返回(ERROR_FAIL)
* 备注    :  传入数据生成二维码
------------------------------------------------------------------------------------------------*/
extern int Monochrome_DisQRcode(int x,int y,unsigned char *str);

//*------------------------------------------------------------------------------------------------
//* 函数名称:  Monochrome_BMP
//* 功能描述:  在指定位置显示图片
//* 入口参数:  int x    			 	--显示的x坐标(起始为左上角坐标)
//*			   int y				 	--显示的y坐标
//			   int P_Wide            	--图片的宽度
//			   int P_High            	--图片的高度
//*            unsigned char *Data_Pic  --显示数据
//*
//* 返回值  :
//*            成功，返回:ERROR_OK(==0)；
//*            失败，返回(ERROR_FAIL)
//* 备注    :  P_Wide,P_High为8的倍数
//*------------------------------------------------------------------------------------------------
extern int Monochrome_BMP(int x,int y,int P_Wide,int P_High,unsigned char *Data_Pic);

//*------------------------------------------------------------------------------------------------
//*函数名称: SimCardInquire
//*功能描述: 判断是否有卡
//*入口参数: 无
//*返回值  : 
//           返回0, 表示有卡;
//           返回1, 表示无卡;
//*------------------------------------------------------------------------------------------------
extern int SimCardInquire();


#ifdef __cplusplus
}
#endif

#endif  //LIB_TCU_H


